package com.example.pojo.entity;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Set;

/**
 * 管理员
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@TableName("admin")
@ApiModel("用户信息")
public class Admin implements Serializable {
    private static final long serialVersionUID = 1L;

    /** ID */
    @ApiModelProperty("用户ID")
    @TableId(type = IdType.AUTO)
    private Integer id;
    /** 用户名 */
    @ApiModelProperty("账户信息")
    private String username;
    /** 密码 */
    @ApiModelProperty("账户密码")
    private String password;
    /** 姓名 */
    @ApiModelProperty("用户姓名")
    private String name;
    /** 电话 */
    @ApiModelProperty("用户电话")
    private String phone;
    /** 邮箱 */
    @ApiModelProperty("用户邮箱")
    private String email;
    /** 头像 */
    @ApiModelProperty("用户头像")
    private String avatar;
    /** 所属施工队id */
    @ApiModelProperty("用户所属团队ID")
    private Integer teamId;
    /** 个人介绍 */
    private String description;
    /** 地址信息 */
    private String address;
    /** 当前账户是否可用 */
    private Integer status;

    //一对多关联
    @TableField(exist = false)
    private Set<Role> roles;

    /** 新密码 */
    @TableField(exist = false)
    private String newPassword;
    @TableField(exist = false)
    private String token;
    @TableField(exist = false)
    private String teamName;

    /** 乐观锁版本号 */
    @ApiModelProperty("乐观锁版本号")
    @Version
    @TableField(value = "version", fill = FieldFill.INSERT)
    private Integer version;
    /** 是否已经删除 */
    @ApiModelProperty("用户是否删除")
    private Integer isDeleted;

    /** 创建时间 */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    /** 更新时间 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
